// function curry(fn, ...args) {
//   // console.log(fn, ...args, fn(...args))
//   // console.log((...extraArgs) => curry(fn, ...args, ...extraArgs))
//   // 参数够了 计算结果  参数不够累加
//   // 函数 形参的个数  addFn 的形参个数为 5 fn.length 为 5
//   return args.length < fn.length ? (...extraArgs) => curry(fn, ...args, ...extraArgs) : fn(...args)
// }
// function addFn(a, b, c, d, e) {
//   return a + b + c + d + e;
// }
let add = curry(addFn);
// console.log(add(1, 2, 3, 4, 5));//15
// console.log(add(1)(2, 3)(4, 5));//15
console.log(add(1)(2)(3)(4)(5));//15


function curry(fn, ...args) {
   return args.length < fn.length ? (...extraArgs) => curry(fn, ...args, ...extraArgs) : fn(...args)
}
function addFn(a, b, c, d, e) {
  return a + b + c + d + e;
}